atomic_dec(&tsc_calibrate_gang);
}
+static char *freq_string(u64 freq)
+{
+ static char s[20];
+ unsigned int x, y;
+ y = (unsigned int)do_div(freq, 1000000) / 1000;
+ x = (unsigned int)freq;
+ sprintf(s, "%u.%03uMHz", x, y);
+ return s;
+}
+
/************************************************************
* PLATFORM TIMER 1: PROGRAMMABLE INTERVAL TIMER (LEGACY PIT)
*/
platform_timer_stamp = pit_counter64;
set_time_scale(&platform_timer_scale, CLOCK_TICK_RATE);
- printk("Platform timer is PIT\n");
+ printk("Platform timer is %s PIT\n", freq_string(CLOCK_TICK_RATE));
return 1;
}
hpet_overflow(NULL);
platform_timer_stamp = hpet_counter64;
- printk("Platform timer is HPET\n");
+ printk("Platform timer is %s HPET\n", freq_string(hpet_rate));
return 1;
}
platform_timer_stamp = cyclone_counter64;
set_time_scale(&platform_timer_scale, CYCLONE_TIMER_FREQ);
- printk("Platform timer is IBM Cyclone\n");
+ printk("Platform timer is %s IBM Cyclone\n",
+ freq_string(CYCLONE_TIMER_FREQ));
return 1;
}